﻿using Persistencia;
using System;
using System.Windows;
using UI.Views.Consultas;
using Dlls;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows;
using System.Windows.Controls;

namespace UI.Views.Cadastros
{
    /// <summary>
    /// Interaction logic for frmCadastroSetores.xaml
    /// </summary>
    public partial class frmCadastroSetores : Window
    {
        private Context contexto;
        private int CodigoAlterarouDeletar = 0;
        private LocalTrabalho localtrabalho;
        private LocalTrabalhoDLL localtrabalhoDll;
   
        public frmCadastroSetores(int codigo)
        {
            InitializeComponent();
            localtrabalho = new LocalTrabalho();
            localtrabalhoDll = new LocalTrabalhoDLL();
            if (codigo != 0)
            {
                CodigoAlterarouDeletar = codigo;
            }
         
        }

        private void InsertOrUpdate(object sender, RoutedEventArgs e)
        {
            try
            {

            if (txtCodigo.Text.ToString()!= "")
            {
                CodigoAlterarouDeletar = int.Parse(txtCodigo.Text.ToString());
                localtrabalho.InternoSN = chkInternoSN.IsChecked;
                localtrabalho.Setor = txtSetor.Text;
                localtrabalho.Descricao = txtObservacao.Text;
                localtrabalho.Cidade = txtCidade.Text;
                localtrabalhoDll.Update(CodigoAlterarouDeletar, localtrabalho);
                System.Windows.MessageBox.Show("Registro atualizado com sucesso!");
            }
            else
            {
                localtrabalho.InternoSN = chkInternoSN.IsChecked;
                localtrabalho.Setor = txtSetor.Text;
                localtrabalho.Descricao = txtObservacao.Text;
                localtrabalho.Cidade = txtCidade.Text;
                localtrabalhoDll.Insert(localtrabalho);
                System.Windows.MessageBox.Show("Registro gravado com sucesso!");
                reset(0, this);
            }
            localtrabalho = new LocalTrabalho();
            }
            catch (Exception)
            {

                System.Windows.MessageBox.Show("Registro não pode ser Gravado/Alterado , favor verificar os campos");
            }

        }

        private void Listar(object sender, System.Windows.Input.KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                if (txtCodigo.Text == "")
                {
                    frmConsultaPadrao frm = new frmConsultaPadrao("Setores");
                    frm.Owner = this;
                    frm.ShowDialog();
                }
                else
                {
                    
                    localtrabalho = localtrabalhoDll.getLocaTrabalho(int.Parse(txtCodigo.Text));
                    if (localtrabalho != null)
                    {
                        txtCodigo.Text = localtrabalho.Codigo.ToString();
                        txtSetor.Text = localtrabalho.Setor.ToString();
                        chkInternoSN.IsChecked = localtrabalho.InternoSN;
                        txtCidade.Text = localtrabalho.Cidade.ToString();
                        txtObservacao.Text = localtrabalho.Descricao.ToString();
                    }
                    else
                    {
                        System.Windows.MessageBox.Show("Registro não encontrado , verificar o código digitado");
                    }
                    

                }
            }
        }

        private static void reset(int depth, DependencyObject obj)
        {
            // Percorre todos os filhos do objeto visual.
            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
                reset(depth + 1, VisualTreeHelper.GetChild(obj, i));

            // Se for um TextBox, limpa.
            if (obj is TextBox)
                ((TextBox)obj).Text = string.Empty;

            if (obj is CheckBox)
                ((CheckBox)obj).IsChecked = false;
        }
    }
}
